package com.anti.modular.bus.buscostincomeexpenses.service;

import com.anti.jdbc.support.page.PageParam;
import com.anti.jdbc.support.page.PageResult;
import com.anti.modular.bus.buscostincomeexpenses.entity.BusCostIncomeExpenses;
import com.anti.modular.bus.buscostincomeexpenses.entity.BusCostIncomeInsertExpenses;
import com.anti.modular.bus.buscostincomeexpenses.node.BusCostIncomeExpensesNode;
import com.anti.modular.bus.buscostincomeexpenses.param.BusCostIncomeExpensesParam;

import java.util.List;
import java.util.Map;

/**
 * 收入支出配置service接口
 *
 * @author anti
 * @date 2021-04-08 14:15:30
 */
public interface BusCostIncomeExpensesService{

    /**
    * 根据主键查询实体
    */
    BusCostIncomeExpenses getById(BusCostIncomeExpensesParam busCostIncomeExpensesParam);

    /**
     * 查询收入支出配置
     *
     * @author anti
     * @date 2021-04-08 14:15:30
     */
    PageResult page(PageParam pageParam,BusCostIncomeExpensesParam busCostIncomeExpensesParam);

    /**
     * 获取树，用于新增，编辑时选择上级节点
     * @param busCostIncomeExpensesParam 查询参数
     * @return 树列表
     */
    List<Map<String, Object>> tree(BusCostIncomeExpensesParam busCostIncomeExpensesParam);

    /**
     * 收入支出配置列表
     *
     * @author anti
     * @date 2021-04-08 14:15:30
     */
    List<BusCostIncomeInsertExpenses>list(BusCostIncomeExpensesParam busCostIncomeExpensesParam);

    List<BusCostIncomeExpenses> getListByType(Integer type);

    /**
     * 添加收入支出配置
     *
     * @author anti
     * @date 2021-04-08 14:15:30
     */
    void add(BusCostIncomeExpensesParam busCostIncomeExpensesParam);

    /**
     * 删除收入支出配置
     *
     * @author anti
     * @date 2021-04-08 14:15:30
     */
    void delete(BusCostIncomeExpensesParam busCostIncomeExpensesParam);

    /**
     * 编辑收入支出配置
     *
     * @author anti
     * @date 2021-04-08 14:15:30
     */
    void edit(BusCostIncomeExpensesParam busCostIncomeExpensesParam);

    /**
     * 查看收入支出配置
     *
     * @author anti
     * @date 2021-04-08 14:15:30
     */
     BusCostIncomeExpenses detail(BusCostIncomeExpensesParam busCostIncomeExpensesParam);

}
